Real-time notification of presence changes

ABSTRACT

Embodiments of the present invention provide a system and method for providing presence and availability status information of a first user to a second user. The system includes a presence availability server for storing presence and availability status information of the first user. The presence availability server is configured to detect a change in the presence and availability status of the first user. The presence availability server also informs a notification server of a change in the presence and availability status of the first user. The notification server sends a notification message to a communication device of the second user. The notification message contains current presence and availability status information of the first user. Other systems and methods are also provided.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. utility application entitled, “Real-Time Notification of Presence Availability Changes,” having Ser. No. 10/144,425, filed May 13, 2002, now issued as U.S. Pat. No. 7,395,329, which is entirely incorporated herein by reference.

TECHNICAL FIELD

The present invention is generally related to personal communications and, more particularly, is related to presence and availability status.

BACKGROUND OF THE INVENTION

Presence and availability are terms used to describe a present ability of an individual to communicate. Presence is an ability of an individual to communicate in real time, and availability is an individual's willingness to communicate in real time. In communications, it is advantageous to know whether a potential recipient of a communication message is present and available, i.e., available to receive and respond to the message before initiating the transmission of the message. By making the presence and availability of individual users known before any communication is attempted, a realtime communications environment is facilitated that is more effective and less obtrusive than conventional communication mediums. Clearly, the communication message that is sent to an addressee that is known to be present and available is more likely to be received promptly than a conventional message. For example, often times, conventional telephone calls are forwarded to a person's voicemail and are never returned.

Instant messaging (IM) is one communication medium that employs presence and availability technology. An instant messaging network recognizes when a user is “present” on the network. Accordingly, the network sends notification to other users (usually members of a “buddy list”) that are also logged on the network that the user is “present.” Further, instant messaging lets a user display custom status messages to his “buddies” online about the user's “availability.” For example, a user can specify his availability status as being “busy, not taking messages.” Therefore another user on the “buddy list” that is connected to the instant messaging network will be notified that although the user is present on the network, he is not available for receiving messages.

Presence and availability information is most useful when an individual shares his or her online status with a trusted group of users. A communication message sent to someone who is readily present and available is less obtrusive, when the addressee has made himself or herself available to the communication. However, today's services mostly focus on a “pull” model for users to retrieve others' presence and availability status. Typically, a user has to log on a communication network before the user is notified about the presence and availability of other users on the network. Thus, a heretofore unaddressed need exists in the industry to address the aforementioned deficiencies and inadequacies.

SUMMARY

Preferred embodiments of the present invention provide a system and method for providing presence and availability status information of a first user (User1) to a second user (User2). The system includes a presence availability server for storing presence and availability status information of User1. The presence availability server is configured to detect a change in the presence and availability status of User1. The presence availability server also informs a notification server of a change in the presence and availability status of User1. The notification server generates a notification message for a communication device of User2. The notification message contains current presence and availability status information of User1.

The preferred embodiment of the present invention can also be viewed as providing a method for supplying presence and availability status information of User1 to User2. In this regard, one embodiment of such a method, among others, can be broadly summarized by the following steps: storing presence and availability status of User1; detecting a change in the presence and availability status of User1; generating a notification message for User2, wherein the notification message contains the current presence and availability status of User1.

Other systems, methods, features, and advantages of the present invention will be or become apparent to one with skill in the art upon examination of the following drawings and detailed description. It is intended that all such additional systems, methods, features, and advantages be included within this description and the scope of the present invention.

BRIEF DESCRIPTION OF THE DRAWINGS

Many aspects of the invention can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present invention. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views.

FIG. 1 is a block diagram of the presence availability notification system of one preferred embodiment of the present invention.

FIG. 2 is a flowchart illustrating the functionality of the presence availability system of FIG. 1.

FIG. 3 is a service flow diagram illustrating interactions for a representative embodiment of the presence availability system of FIG. 1.

FIG. 4 is a service flow diagram illustrating interactions for a representative embodiment of the presence availability system of FIG. 1.

FIG. 5 is a service flow diagram illustrating interactions for a representative embodiment of the presence availability system of FIG. 1.

FIG. 6 is a service flow diagram illustrating interactions for a representative embodiment of the presence availability system of FIG. 1.

FIG. 7 is a service flow diagram illustrating interactions for a representative embodiment of the presence availability system of FIG. 1.

DETAILED DESCRIPTION

FIG. 1 is a block diagram of the presence availability notification system 100 of one preferred embodiment of the present invention. The presence availability notification system notifies User2 of any changes in the presence and availability status (“online status”) of User1. The system 100 includes a presence availability server 110 that monitors the online status of User1 in regard to a communication device of User1 120. The communication device 120 includes, among others, any device capable of relaying the presence and availability status of User1, so that the presence and availability status of User1 can be made known to others. The communication device 120 could be, among others, a computer, a PSTN telephone, a mobile telephone, a pager, a personal digital assistant, etc. The communication device 120 may have a client program installed on the device to enable particular communication technologies, such as email, instant messaging, etc.

The presence availability server 110 maintains current presence and availability data of User1 as the presence availability server receives updates from the communication device 120. The presence availability server 110 stores presence and availability data for User1 in a presence availability database 115. The presence availability database 115 is located on the presence availability server 110. Alternatively, in other embodiments, the presence availability database 115 could be in communication with and located separately from the presence availability server 110. The communication device of User1120 notifies the presence availability server 110 of a change in the presence and availability status of User1. The communication device of User1 communicates with the presence availability server 110 via a communication network 130. The communication network 130 could be a PSTN telephone network, the Internet, or any other network supporting communication technologies.

The presence availability notification system 100 also includes a notification server 140 that receives update messages from the presence availability server 110 concerning a change in the presence and availability status of User1. The notification server 140 then sends a notification message to the communication device 150 of User2 to notify User2 of a change in the online status of User1. The User2 communication device 150 includes any device that User2 can receive a notification message with, such as a PSTN phone, an email client, an instant messaging client, etc.

The notification server 140 contains a profile database 145. The profile database 145 contains profiles of users of the notification server 140, such as User1 and User2. Alternatively, the profile database 145 could be stored separately from the notification server 140 on another server that is in communication with the notification server 140. The notification server 140 preferably generates and transmits notification messages for receipt by the communication device 150 of User2 by using the Internet 160. In other embodiments, however, any type of communication network, besides the Internet 160, could be used.

Particularly, in one implementation, the notification server 140 sends a notification message to a messaging server 170 that is connected to the Internet 160. The messaging server 170 then forwards the notification message to the communication device 150 of User2 via a communication network 180. The messaging server 170 supports a communication technology, such as email, instant messaging, voiceXML, WAP, etc. The communication network 180 could be a PSTN telephone network, the Internet, or any other network supporting the communication technology of the messaging server 170. For example, if the messaging server 170 is an instant messaging server 170, then the communication network 180 could be the Internet, for example. Correspondingly, if the messaging server is a voiceXML server, then the communication network 180 could be a PSTN network.

The overall operation of the presence availability notification system 100 (or method 200) will be described with reference to FIG. 2, which depicts the functionality of a preferred implementation of the presence availability notification system 100. It should be noted that, in some alternative implementations, the functions noted in the various steps may occur out of the order depicted in the figure. For example, two steps shown in succession in the figures may, in fact, be executed substantially concurrently or the steps may be executed in reverse order depending upon the functionality involved, as would be understood by one with reasonable skills in the art.

FIG. 2 is a flowchart depicting a representative embodiment of a method 200 for notifying User2 of the presence and availability (online) status of User1. In block 210, a profile for User1 is created and stored in a profile database 145. The creation of the profile and the entering of user information for User1 may be facilitated by the use of web page and forms contained therein. In the profile of User1, User1 specifies a userID and a password. The userID and password are needed by User1 to access his profile and to update his profile information. In block 220, User1 designates individuals that he or she wants to monitor his or her online status. In this particular embodiment of the invention, User1 gives out his userID to User2. In other embodiments of the inventions, User1 could also be required to give out his or her password to User2, so that User1 is assured that only authorized persons are monitoring his or her online status.

In block 230, User2 specifies notification preferences. Again, the entering of information for User2 may be facilitated by the use of web pages. Notification preferences are the necessary contact information for delivering a notification message to User2. The notification preferences may include the email address of User2, phone number, WAP address, instant messaging address, etc. User2 may have more than one contact address specified, so that User2 can receive more than one notification message for a presence and availability status change. Typically, the notification preferences are included in a profile for User2 that is created and stored in the profile database 145. Additionally in the profile, User2 specifies a userID and password. The userID and password are needed by User2 to access his profile and to update his profile information.

In block 240, User2 registers to monitor the presence and availability status of User1. To do so, User2 specifies the userID of User1 in the profile of User2. The profile of User2 is stored in the profile database 145. Additionally, the presence availability server 110 registers that the online status of User1 is being monitored. To initiate the sending of a notification message, a change occurs in the presence and availability status of User1. For instance, if User1 terminated an instant messaging session, his or her online status changes from being “present” for instant messaging communications to being “not present.” Therefore, a notification message will be sent to notify User2 of this change in the online status of User1. The current presence and availability data of User1 are maintained in a presence availability database 115 located in a presence availability server 110.

The presence availability server 110 detects the change in the presence and availability status of User1, as depicted in block 250. For instance, the communication device 120 of User1 may inform the presence availability server 110 of a change in the online status of User1. Alternatively, the presence availability server 110 could poll the communication device 120 to determine the online status of User1. In step 255, the presence availability server 110 determines from the presence availability database 115 that User1 is being monitored by at least one other user, so the presence availability server 110 informs the notification server 140 of the change in the presence and availability status of User1. Otherwise, the presence availability server 110 would not notify the notification server 140 of status changes for User1. After a change, the notification server 140 retrieves from the profile database 145 the notification preferences from the profiles of users who have the userID of User1 in their profile.

Therefore, the profile of User2 is retrieved by the notification server 140, since User2 is monitoring the online status of User1 and has the userID of User1 in his or her profile. From the profile of User2, the notification server obtains the notification preferences of User2, as depicted in block 260. The notification preferences specify the manner for delivering a notification message to User2. For example, the notification preferences may specify that a notification message is to be delivered at the email address of User2. Accordingly in block 270, a notification message detailing the presence and availability status change of User1 is sent to User2 in conformity with the notification preferences of User2. In the notification message, the presence and availability status of User2 is provided by the presence availability server.

In an alternative representative implementation of the present invention, User1 designates in his profile the users that he or she wants notified about the changes in his or her online status. Then after the notification server 140 is informed about a change in the online status of User1, the notification server 140 sends notification messages to the users designated in the profile of User1. The notification messages are delivered according to the notification preferences in the various profiles designated in the profile of User1.

In another embodiment, User1 designates in the presence availability database 115 the users that User1 wants notified about changes in the online status of User1. Accordingly, the presence availability server 110 notifies the notification server of a change in the presence and availability status of User1. The presence availability server 110 also instructs the notification server 140 on which individuals to send notifications to, since this information is stored in the presence availability database 115. The notification messages are delivered according to the notification preferences in the individual's profile in the profile database 145.

It should also be noted that the functions provided by the presence availability server & presence availability database and the notification server & profile database do not have to be provided by separate network devices. The respective functions could be performed by a single server & database.

FIG. 3 is a service flow diagram for a representative implementation of one preferred embodiment of the present invention. FIG. 3 depicts certain interactions between the notification server 140 & profile database 145 and the presence availability server 110 & presence availability database 115. Particularly, responsive to detecting a change in the presence and availability status of User1 and an indication of monitoring by another user, the presence availability server informs the notification server about the change in the presence and availability status of User1. In this embodiment of the invention, User1 has registered User2 in the profile database 145 as a monitor of the presence and availability status of User1. In FIG. 3, once the notification server 140 is informed of a status change in the presence and availability status of User1, the notification server 140 inspects the profile database 145 and determines the user(s), such as User2, that are registered to monitor the presence and availability status of User1.

FIG. 4 is a service flow diagram for a representative implementation of one preferred embodiment of the invention for transmitting notification messages using instant messaging technology. FIG. 4 depicts the interactions between the notification server 140 & profile database 145 and the communication device 150 of User2, after a status change has been detected, as previously shown in FIG. 3. Here, the communication device 150 of User2 contains an instant messaging client 155. The instant messaging client 155 could be installed on a computer, a personal digital assistant (PDA), or any other device capable of providing instant messaging communications. In FIG. 4, the first action shown is the retrieval of the notification preferences specified in the profile of User2 from the profile database 145. From the notification preferences, the instant messaging address of User2 is obtained. The profile database 145 then transmits the instant messaging address of User2 to the notification server 140.

With the instant messaging address of User2, the notification server 140 requests that an instant message be sent from a messaging server 170 to the instant messaging address of User2. In this particular embodiment, the messaging server 170 is an instant messaging server. In the request to the instant messaging server 170, the notification server 140 specifies the content of the instant message, which is to include the updated online status of User1. Lastly in FIG. 4, the instant messaging server 170 transmits an instant message (notification message) to the instant messaging client 155 of User2, e.g., “Steve Johnson is now in the office.” Note, the instant messaging address of User2 is the address of the instant messaging client 155 on the communication device 150 of User2.

In another representative implementation of one preferred embodiment of the invention, FIG. 5 depicts a service flow diagram for an embodiment of the invention for transmitting notification messages using email technology. FIG. 5 shows the interactions between the notification server 140 & profile database 145 and the communication device 150 of User2, after a status change has been detected, as previously shown in FIG. 3. Here, the communication device 150 of User2 contains an email client program 155. The email client 155 could be installed on a computer connected to the Internet or on personal digital assistant (PDA) or any other device capable of providing email communications.

In FIG. 5, the first action shown is the retrieval of the notification preferences specified in the profile of User2 from the profile database 145. From the notification preferences, the email address of User2 is obtained. The profile database 145 then transmits the email address of User2 to the notification server 140. With the email address, the notification server 140 requests that an email message be sent from the messaging server 170 to the email address of User2. In this particular embodiment, the messaging server 170 is an email server. In the request to the email server 170, the notification server 140 specifies the content of the email message that is to include the new presence and availability status of User1. Lastly, the email (notification) message is transmitted from the email server 170 to the email client 155 of User2. The email address of User2 is the address of the email client 155 on the communication device 150 of User2.

FIG. 6 represents the service flow diagram for another implementation of one preferred embodiment of the present invention using wireless application protocol (WAP) push technology. Particularly, FIG. 6 depicts the interactions between the notification server 140 & profile database 145 and the communication device 150 of User2, after a status change has been detected, as previously shown in FIG. 3. Here, the communication device 150 of User2 contains a WAP client. The WAP client could be installed on a mobile phone, a pager, a personal digital assistant (PDA), or any other device capable of providing WAP communications.

In FIG. 6, the first action shown is the retrieval of the notification preferences specified in the profile of User2 from the profile database. From the notification preferences, the WAP of User2 address is obtained. The profile database 145 then transmits the WAIP address of User2 to the notification server 140. With the WAP address of User2, the notification server 140 sends a notification message to the messaging server 170. In this particular embodiment, the message transmitted by the notification server 140 is encoded in wireless markup language (WML), and the messaging server 170 is a WAP push proxy. After the notification message is received at the WAP push proxy 170, the notification message is sent (or “pushed”) to the communication device 150 of User2. The WAIP address is the address for the WAP client 155 on the communication device 150 of User2.

In an alternative implementation, FIG. 7 is a service flow diagram for another preferred embodiment of the invention for transmitting notification messages using voiceXML technology. VoiceXML is an application of the Extensible Markup Language (XML) which, when combined with voice recognition technology, enables interactive access to the Internet through a telephone or a voice-driven browser. FIG. 7 depicts the interactions between the notification server 140 & profile database 145 and the communication device 150 of User2, after a status change has been detected, as previously shown in FIG. 3. Here, the communication device 150 of User2 is a PSTN telephone or answering machine.

In FIG. 7, the first action shown is the retrieval of the notification preferences specified in the profile of User2 from the profile database 145. From the notification preferences, the telephone number of User2 is obtained. The profiles database 145 then transmits the telephone number of User2 to the notification server 140. Next, the notification server 140 sends a notification message in voiceXML language to a messaging server 170. In this particular embodiment, the messaging server 170 is a voiceXML gateway.

The notification message includes the new presence and availability status of User1. The voiceXML gateway 170 receives the notification message and initiates a telephone call to the telephone number of User2. Upon an answer by the communication device 150 of User2, the voiceXML gateway 170 converts the notification message in voiceXML to a voice notification message that is delivered to the communication device 150 of User2 over a PSTN telephone network.

Note, as long as the presence availability server 110 has a network interface and the number of users it has to support are small, a small workstation could operate as a presence availability server 110. More often, though, the presence availability server 110 will be a higher end platform, e.g. a Sun Microsystems Netra. The presence availability server 110 has interfaces to all of the types of devices it supports. Over these interfaces, the presence and availability status information of User1 is communicated to the presence availability server. For most devices a TCP/IP interface is sufficient. For some device types, a wireless modem may be required. Along with the device interfaces, the presence availability server may contain a database package to store the presence and availability status information in (e.g. Oracle, Access, etc.), and another interface to allow the querying of a user's presence and availability status. This second interface may be available over TCP/IP and preferably is in the form of a simple application program interface (API) or a servlet.

It should be emphasized that the above-described embodiments of the present invention, particularly, any “preferred” embodiments, are merely possible examples of implementations, merely set forth for a clear understanding of the principles of the invention. Many variations and modifications may be made to the above-described embodiment(s) of the invention without departing substantially from the spirit and principles of the invention. For example, other messaging technologies such as short message service (SMS) or fax messaging could be used to support the delivery of the notification messages. All such modifications and variations are intended to be included herein within the scope of this disclosure and the present invention and protected by the following claims. 

1. A system for providing presence and availability status information of a first user to a second user, comprising: a notification server configured to generate an email notification message for the second user, wherein the first user designates a group of individuals, including the second user, that are eligible to receive presence and availability status of the first user in email notification messages, the email notification message containing current presence status of the first user, wherein the notification server is to be notified of a change in the presence status of the first user with respect to instant messaging communications and the notification server is configured to send the email notification message to the second user responsive to the change being detected in the presence status of the first user and not based upon an online status of the second user, wherein the second user elects to receive presence and availability status of the first user by previously registering with the notification server and providing verification that the first user has authorized the second user to monitor the presence status of the first user.
 2. The system of claim 1, further comprising: a presence availability server for storing presence information of the first user for instant messaging communications, wherein the presence availability server is configured to detect a change in the presence status of the first user.
 3. The system of claim 2, wherein the profile database stores a profile of the first user, wherein the profile of the first user designates the second user as a monitor of the presence and availability status of the first user.
 4. The system of claim 2, wherein the notification preferences include an email address for the second user.
 5. The system of claim 1, further comprising: a profile database coupled to the notification server, the profile database storing a profile of the second user, wherein the profile of the second user contains notification preferences.
 6. The system of claim 1, further comprising: an email messaging server communicating with the notification server, wherein: the notification server sends a notification message to an email messaging server; and the email messaging server forwards the notification message to the communication device of the second user.
 7. A method for providing presence and availability status information, comprising: designating a group of individuals, including a second user, that are eligible to receive a presence status of a first user in email notification messages; and after a change in the presence status of the first user, sending an email notification message to the second user, wherein the notification message contains the current presence status of the first user for instant messaging communications and the email notification message is sent to the second user responsive to the change being detected in the presence status of the first user and not based upon an online status of the second user, wherein the second user elected to receive presence and availability status of the first status by previously registering with a notification server and providing verification that the first user has authorized the second user to monitor the presence status of the first user.
 8. The method of claim 7, further comprising: storing a profile of the second user, wherein the profile of the second user contains notification preferences.
 9. The method of claim 8, wherein the notification preferences include an email address for the second user.
 10. The method of claim 7, further comprising: storing a profile of the first user, wherein the profile of the first user designates the second user as a monitor of the presence status of the first user.
 11. The method of claim 7, further comprising: storing a profile of the first user, wherein: the profile of the first user contains a userID of the first user; and the profile of the second user contains the userID of the first user.
 12. The method of claim 7, further comprising: providing the presence status of the first user.
 13. The method of claim 7, further comprising: determining that the presence status of the first user is being monitored by the second user.
 14. A non-transitory computer readable medium having executable instructions to perform: designating a group of individuals, including a second user, that are eligible to receive a presence status of a first user in email notification messages; and after a change in the presence status of the first user, sending an email notification message to the second user, wherein the notification message contains the current presence status of the first user for instant messaging communications and the email notification message is sent to the second user responsive to the change being detected in the presence status of the first user and not based upon an online status of the second user, wherein the second user elected to receive presence and availability status of the first status by previously registering with a notification server and providing verification that the first user has authorized the second user to monitor the presence status of the first user.
 15. The non-transitory computer readable medium of claim 14, further comprising: storing a profile of the second user, wherein the profile of the second user contains notification preferences.
 16. The non-transitory computer readable medium of claim 15, wherein the notification preferences include an email address for the second user.
 17. The non-transitory computer readable medium of claim 14, further comprising: storing a profile of the first user, wherein the profile of the first user designates the second user as a monitor of the presence status of the first user.
 18. The non-transitory computer readable medium of claim 14, further comprising: storing a profile of the first user, wherein: the profile of the first user contains a userID of the first user; and the profile of the second user contains the userID of the first user.
 19. The non-transitory computer readable medium of claim 14, further comprising: providing the presence status of the first user.
 20. The non-transitory computer readable medium of claim 14, further comprising: determining that the presence status of the first user is being monitored by the second user. 